<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>dp12rxss: xdprxss_mst_example.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">dp12rxss
   </div>
   <div id="projectbrief">Vitis Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="pages.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xdprxss__mst__example_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">xdprxss_mst_example.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This file contains a design example using the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> driver in single stream (SST) transport or multi-stream transport (MST) mode. </p>
<dl class="section note"><dt>Note</dt><dd>For this example to display output, the user need to implement initialization of the system (DpRxSs_PlatformInit), Video Phy (DpRxSs_VideoPhyInit), start DisplayPort RX subsystem (XDpRxSs_Start) and DisplayPort RX Subsystem setup (DpRxSs_Setup). The input to the Subsystem is from RX (GT). This example requires an interrupt controller in the system. The functions DpRxSs_PlatformInit, DpRxSs_VideoPhyInit and DpRxSs_Setup are declared and are left up to the user to implement.</dd></dl>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver  Who Date     Changes
</p>
<hr/>
<p>
1.00 sha 07/29/15 Initial release.
2.00 sha 10/05/15 Changed DpTxSs_Setup &ndash;&gt; DpRxSs_Setup.
4.00 ms  01/23/17 Modified xil_printf statement in main function to
                  ensure that "Successfully ran" and "Failed" strings
                  are available in all examples. This is a fix for
                  CR-965028.
</pre> </div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a4ee6ff10963ea3a0f8d8e340983a5a99"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#a4ee6ff10963ea3a0f8d8e340983a5a99">DpRxSs_MstExample</a> (u16 DeviceId)</td></tr>
<tr class="memdesc:a4ee6ff10963ea3a0f8d8e340983a5a99"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the main entry point for the MST/SST example using the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> driver.  <a href="#a4ee6ff10963ea3a0f8d8e340983a5a99">More...</a><br/></td></tr>
<tr class="separator:a4ee6ff10963ea3a0f8d8e340983a5a99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26fb3eace6447299bbdedd12b314a6a8"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#a26fb3eace6447299bbdedd12b314a6a8">DpRxSs_PlatformInit</a> (void)</td></tr>
<tr class="memdesc:a26fb3eace6447299bbdedd12b314a6a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function initialize required platform specific peripherals.  <a href="#a26fb3eace6447299bbdedd12b314a6a8">More...</a><br/></td></tr>
<tr class="separator:a26fb3eace6447299bbdedd12b314a6a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a416674ea3b4fb518b781478d20c6bc51"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#a416674ea3b4fb518b781478d20c6bc51">DpRxSs_VideoPhyInit</a> (void)</td></tr>
<tr class="memdesc:a416674ea3b4fb518b781478d20c6bc51"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function configures Video Phy.  <a href="#a416674ea3b4fb518b781478d20c6bc51">More...</a><br/></td></tr>
<tr class="separator:a416674ea3b4fb518b781478d20c6bc51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae690e4e95545e8f6b37672430f1f910a"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#ae690e4e95545e8f6b37672430f1f910a">DpRxSs_Setup</a> (void)</td></tr>
<tr class="memdesc:ae690e4e95545e8f6b37672430f1f910a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function configures DisplayPort RX Subsystem.  <a href="#ae690e4e95545e8f6b37672430f1f910a">More...</a><br/></td></tr>
<tr class="separator:ae690e4e95545e8f6b37672430f1f910a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a7486431cab68af81fb7ba9f2bc4793"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#a0a7486431cab68af81fb7ba9f2bc4793">DpRxSs_SetupIntrSystem</a> (void)</td></tr>
<tr class="memdesc:a0a7486431cab68af81fb7ba9f2bc4793"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets up the interrupt system so interrupts can occur for the DisplayPort RX Subsystem core.  <a href="#a0a7486431cab68af81fb7ba9f2bc4793">More...</a><br/></td></tr>
<tr class="separator:a0a7486431cab68af81fb7ba9f2bc4793"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab48f1eb74aef3c71a182fbbf1766f3c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#ab48f1eb74aef3c71a182fbbf1766f3c9">DpRxSs_VideoModeHandler</a> (void *InstancePtr)</td></tr>
<tr class="memdesc:ab48f1eb74aef3c71a182fbbf1766f3c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the callback function for when a video mode change interrupt occurs.  <a href="#ab48f1eb74aef3c71a182fbbf1766f3c9">More...</a><br/></td></tr>
<tr class="separator:ab48f1eb74aef3c71a182fbbf1766f3c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a182eb63ff50788f187a14f7a92642af6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#a182eb63ff50788f187a14f7a92642af6">DpRxSs_NoVideoHandler</a> (void *InstancePtr)</td></tr>
<tr class="memdesc:a182eb63ff50788f187a14f7a92642af6"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the callback function for when a no video interrupt occurs.  <a href="#a182eb63ff50788f187a14f7a92642af6">More...</a><br/></td></tr>
<tr class="separator:a182eb63ff50788f187a14f7a92642af6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8b407dc14e0af7ec22c33d57f03759c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#ab8b407dc14e0af7ec22c33d57f03759c">DpRxSs_VerticalBlankHandler</a> (void *InstancePtr)</td></tr>
<tr class="memdesc:ab8b407dc14e0af7ec22c33d57f03759c"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the callback function for when a vertical blank interrupt occurs.  <a href="#ab8b407dc14e0af7ec22c33d57f03759c">More...</a><br/></td></tr>
<tr class="separator:ab8b407dc14e0af7ec22c33d57f03759c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b44ac6b87efbb02046da6924c82ed70"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#a1b44ac6b87efbb02046da6924c82ed70">DpRxSs_TrainingLostHandler</a> (void *InstancePtr)</td></tr>
<tr class="memdesc:a1b44ac6b87efbb02046da6924c82ed70"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the callback function for when a training lost interrupt occurs.  <a href="#a1b44ac6b87efbb02046da6924c82ed70">More...</a><br/></td></tr>
<tr class="separator:a1b44ac6b87efbb02046da6924c82ed70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a879656468e071dd105e3c1f05b042524"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#a879656468e071dd105e3c1f05b042524">DpRxSs_TrainingDoneHandler</a> (void *InstancePtr)</td></tr>
<tr class="memdesc:a879656468e071dd105e3c1f05b042524"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the callback function for when the training done interrupt occurs.  <a href="#a879656468e071dd105e3c1f05b042524">More...</a><br/></td></tr>
<tr class="separator:a879656468e071dd105e3c1f05b042524"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c8998041786497da0f18239962b3556"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#a8c8998041786497da0f18239962b3556">DpRxSs_DownReqestHandler</a> (void *InstancePtr)</td></tr>
<tr class="memdesc:a8c8998041786497da0f18239962b3556"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the callback function for when a down request interrupt occurs.  <a href="#a8c8998041786497da0f18239962b3556">More...</a><br/></td></tr>
<tr class="separator:a8c8998041786497da0f18239962b3556"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3e32bce337c1d356f6831c816122cc7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#ad3e32bce337c1d356f6831c816122cc7">DpRxSs_DownReplyHandler</a> (void *InstancePtr)</td></tr>
<tr class="memdesc:ad3e32bce337c1d356f6831c816122cc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the callback function for when a down reply interrupt occurs.  <a href="#ad3e32bce337c1d356f6831c816122cc7">More...</a><br/></td></tr>
<tr class="separator:ad3e32bce337c1d356f6831c816122cc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb9293004b94de688e83af78d4f10ee1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#acb9293004b94de688e83af78d4f10ee1">DpRxSs_UnplugHandler</a> (void *InstancePtr)</td></tr>
<tr class="memdesc:acb9293004b94de688e83af78d4f10ee1"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the callback function for when the unplug event occurs.  <a href="#acb9293004b94de688e83af78d4f10ee1">More...</a><br/></td></tr>
<tr class="separator:acb9293004b94de688e83af78d4f10ee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e933da366c3f1d04022bfc4cede6852"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#a4e933da366c3f1d04022bfc4cede6852">DpRxSs_LinkBandwidthHandler</a> (void *InstancePtr)</td></tr>
<tr class="memdesc:a4e933da366c3f1d04022bfc4cede6852"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the callback function for when the link bandwidth change occurs.  <a href="#a4e933da366c3f1d04022bfc4cede6852">More...</a><br/></td></tr>
<tr class="separator:a4e933da366c3f1d04022bfc4cede6852"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7edd4773da6da9a0e8d971ea269d79f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#ad7edd4773da6da9a0e8d971ea269d79f">DpRxSs_PllResetHandler</a> (void *InstancePtr)</td></tr>
<tr class="memdesc:ad7edd4773da6da9a0e8d971ea269d79f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is the callback function for PLL reset request.  <a href="#ad7edd4773da6da9a0e8d971ea269d79f">More...</a><br/></td></tr>
<tr class="separator:ad7edd4773da6da9a0e8d971ea269d79f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a502a615a3a5d923c6315cbdc85ad136a"><td class="memItemLeft" align="right" valign="top">u32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#a502a615a3a5d923c6315cbdc85ad136a">DpRxSs_SetupTimerHandler</a> (void)</td></tr>
<tr class="memdesc:a502a615a3a5d923c6315cbdc85ad136a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function sets up a custom timer which the driver will use for MicroBlaze systems.  <a href="#a502a615a3a5d923c6315cbdc85ad136a">More...</a><br/></td></tr>
<tr class="separator:a502a615a3a5d923c6315cbdc85ad136a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5cf630dfb6e3d33763d14e4f32f0abc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#ae5cf630dfb6e3d33763d14e4f32f0abc">DpRxSs_CustomWaitUs</a> (void *InstancePtr, u32 MicroSeconds)</td></tr>
<tr class="memdesc:ae5cf630dfb6e3d33763d14e4f32f0abc"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is used to override the driver's default sleep functionality.  <a href="#ae5cf630dfb6e3d33763d14e4f32f0abc">More...</a><br/></td></tr>
<tr class="separator:ae5cf630dfb6e3d33763d14e4f32f0abc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ede858b1f7354569c0f65e8d608115b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#a2ede858b1f7354569c0f65e8d608115b">DpRxSs_DetectResolution</a> (<a class="el" href="struct_x_dp_rx_ss.html">XDpRxSs</a> *InstancePtr)</td></tr>
<tr class="memdesc:a2ede858b1f7354569c0f65e8d608115b"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function will present the resolution of the incoming video stream.  <a href="#a2ede858b1f7354569c0f65e8d608115b">More...</a><br/></td></tr>
<tr class="separator:a2ede858b1f7354569c0f65e8d608115b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xdprxss__mst__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the main function for <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> SST/MST example.  <a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">More...</a><br/></td></tr>
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ae5cf630dfb6e3d33763d14e4f32f0abc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DpRxSs_CustomWaitUs </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>InstancePtr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">u32&#160;</td>
          <td class="paramname"><em>MicroSeconds</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is used to override the driver's default sleep functionality. </p>
<p>For MicroBlaze systems, the XDpRxSs_WaitUs driver function's default behavior is to use the MB_Sleep function from microblaze_sleep.h, which is implemented in software and only has millisecond accuracy. For this reason, using a hardware timer is preferable. For ARM/Zynq SoC systems, the SoC's timer is used - XDpRxSs_WaitUs will ignore this custom timer handler.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> core instance. </td></tr>
    <tr><td class="paramname">MicroSeconds</td><td>is the number of microseconds to delay/sleep for.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Use the XDpRxSs_SetUserTimerHandler driver function to set this function as the handler for when the XDpRxSs_WaitUs driver function is called. </dd></dl>

<p>References <a class="el" href="struct_x_dp_rx_ss.html#aeaf3eee6d864238c89084759cfe0f6eb">XDpRxSs::DpPtr</a>.</p>

<p>Referenced by <a class="el" href="xdprxss__mst__example_8c.html#a502a615a3a5d923c6315cbdc85ad136a">DpRxSs_SetupTimerHandler()</a>.</p>

</div>
</div>
<a class="anchor" id="a2ede858b1f7354569c0f65e8d608115b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DpRxSs_DetectResolution </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_dp_rx_ss.html">XDpRxSs</a> *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function will present the resolution of the incoming video stream. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The resolution will be rounded up to the nearest resolution present in the XVidC_VideoTimingModes table. </dd></dl>

<p>References <a class="el" href="struct_x_dp_rx_ss.html#aeaf3eee6d864238c89084759cfe0f6eb">XDpRxSs::DpPtr</a>, <a class="el" href="group__dprxss.html#gade9ba08af5232341cdb08e1cfecbe7da">XDPRXSS_MSA_HRES</a>, <a class="el" href="group__dprxss.html#gadb8bd23f822d2c71d2c1048fe0a63756">XDPRXSS_MSA_VRES</a>, <a class="el" href="group__dprxss.html#gacbff65f42123f46ee5085f8a37634b76">XDpRxSs_ReadReg</a>, and <a class="el" href="group__dprxss.html#gac12fae71e2f814c34ebf8cf3007631e2">XDpRxSs_WaitUs</a>.</p>

</div>
</div>
<a class="anchor" id="ad3e32bce337c1d356f6831c816122cc7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DpRxSs_DownReplyHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the callback function for when a down reply interrupt occurs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="a8c8998041786497da0f18239962b3556"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DpRxSs_DownReqestHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the callback function for when a down request interrupt occurs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="a4e933da366c3f1d04022bfc4cede6852"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DpRxSs_LinkBandwidthHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the callback function for when the link bandwidth change occurs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="a4ee6ff10963ea3a0f8d8e340983a5a99"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 DpRxSs_MstExample </td>
          <td>(</td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>DeviceId</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the main entry point for the MST/SST example using the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> driver. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DeviceId</td><td>is the unique device ID of the DisplayPort RX Subsystem core.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if DisplayPort RX Subsystem configured in SST/MST successfully.</li>
<li>XST_FAILURE, if DisplayPort RX Subsystem failed to configure in SST/MST.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="struct_x_dp_rx_ss___config.html#a51ebda7704c9682d7b8fc8073da88ad8">XDpRxSs_Config::BaseAddress</a>, <a class="el" href="xdprxss__debug__example_8c.html#a26fb3eace6447299bbdedd12b314a6a8">DpRxSs_PlatformInit()</a>, <a class="el" href="xdprxss__debug__example_8c.html#ae690e4e95545e8f6b37672430f1f910a">DpRxSs_Setup()</a>, <a class="el" href="xdprxss__intr__example_8c.html#a0a7486431cab68af81fb7ba9f2bc4793">DpRxSs_SetupIntrSystem()</a>, <a class="el" href="xdprxss__mst__example_8c.html#a502a615a3a5d923c6315cbdc85ad136a">DpRxSs_SetupTimerHandler()</a>, <a class="el" href="xdprxss__debug__example_8c.html#a416674ea3b4fb518b781478d20c6bc51">DpRxSs_VideoPhyInit()</a>, <a class="el" href="struct_x_dp_rx_ss___usr_opt.html#a3b30d496a7ebaea9b6f78a4edd47e07a">XDpRxSs_UsrOpt::MstSupport</a>, <a class="el" href="struct_x_dp_rx_ss.html#afc12f403a17670fcf650b2056576785d">XDpRxSs::UsrOpt</a>, <a class="el" href="group__dprxss.html#ga25f3b6123ff5cbf277c4117617980738">XDpRxSs_CfgInitialize()</a>, <a class="el" href="group__dprxss.html#ga81fb45e531552358b584b48d5d1d65f5">XDpRxSs_LookupConfig()</a>, <a class="el" href="group__dprxss.html#ga180a0386c25a456d436bbfc9fec05c02">XDpRxSs_SetLaneCount()</a>, <a class="el" href="group__dprxss.html#gae447b427e7616d143f2170881fa79bb1">XDpRxSs_SetLinkRate()</a>, and <a class="el" href="group__dprxss.html#ga5ada36b95407b1169e183bbb7b9847d6">XDpRxSs_Start()</a>.</p>

<p>Referenced by <a class="el" href="xdprxss__mst__example_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main()</a>.</p>

</div>
</div>
<a class="anchor" id="a182eb63ff50788f187a14f7a92642af6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DpRxSs_NoVideoHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the callback function for when a no video interrupt occurs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="a26fb3eace6447299bbdedd12b314a6a8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 DpRxSs_PlatformInit </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function initialize required platform specific peripherals. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if required peripherals are initialized and configured successfully.</li>
<li>XST_FAILURE, otherwise.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="ad7edd4773da6da9a0e8d971ea269d79f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DpRxSs_PllResetHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the callback function for PLL reset request. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="ae690e4e95545e8f6b37672430f1f910a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 DpRxSs_Setup </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function configures DisplayPort RX Subsystem. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if DPRX Subsystem configured successfully.</li>
<li>XST_FAILURE, otherwise.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="a0a7486431cab68af81fb7ba9f2bc4793"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 DpRxSs_SetupIntrSystem </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets up the interrupt system so interrupts can occur for the DisplayPort RX Subsystem core. </p>
<p>The function is application-specific since the actual system may or may not have an interrupt controller. The DPRX Subsystem core could be directly connected to a processor without an interrupt controller. The user should modify this function to fit the application.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if interrupt setup was successful.</li>
<li>A specific error code defined in "xstatus.h" if an error occurs.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="a502a615a3a5d923c6315cbdc85ad136a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 DpRxSs_SetupTimerHandler </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function sets up a custom timer which the driver will use for MicroBlaze systems. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if a timer controller exists for use.</li>
<li>XST_FAILURE otherwise.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>A timer controller must be present in the system. </dd></dl>

<p>References <a class="el" href="struct_x_dp_rx_ss.html#aeaf3eee6d864238c89084759cfe0f6eb">XDpRxSs::DpPtr</a>, <a class="el" href="xdprxss__mst__example_8c.html#ae5cf630dfb6e3d33763d14e4f32f0abc">DpRxSs_CustomWaitUs()</a>, and <a class="el" href="group__dprxss.html#gaf684915f482b58b5b4dcd9950f4af1a7">XDpRxSs_SetUserTimerHandler()</a>.</p>

<p>Referenced by <a class="el" href="xdprxss__mst__example_8c.html#a4ee6ff10963ea3a0f8d8e340983a5a99">DpRxSs_MstExample()</a>.</p>

</div>
</div>
<a class="anchor" id="a879656468e071dd105e3c1f05b042524"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DpRxSs_TrainingDoneHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the callback function for when the training done interrupt occurs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="a1b44ac6b87efbb02046da6924c82ed70"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DpRxSs_TrainingLostHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the callback function for when a training lost interrupt occurs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="acb9293004b94de688e83af78d4f10ee1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DpRxSs_UnplugHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the callback function for when the unplug event occurs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="ab8b407dc14e0af7ec22c33d57f03759c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DpRxSs_VerticalBlankHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the callback function for when a vertical blank interrupt occurs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="ab48f1eb74aef3c71a182fbbf1766f3c9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DpRxSs_VideoModeHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>InstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is the callback function for when a video mode change interrupt occurs. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">InstancePtr</td><td>is a pointer to the <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> instance.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="a416674ea3b4fb518b781478d20c6bc51"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">u32 DpRxSs_VideoPhyInit </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function configures Video Phy. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if Video Phy configured successfully.</li>
<li>XST_FAILURE, otherwise.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a class="anchor" id="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int main </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the main function for <a class="el" href="struct_x_dp_rx_ss.html" title="The DisplayPort RX Subsystem driver instance data. ">XDpRxSs</a> SST/MST example. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><ul>
<li>XST_SUCCESS if the MST/SST example passed.</li>
<li>XST_FAILURE if the MST/SST example was unsuccessful.</li>
</ul>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p>References <a class="el" href="xdprxss__mst__example_8c.html#a4ee6ff10963ea3a0f8d8e340983a5a99">DpRxSs_MstExample()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
	<p class="footer">&copy; Copyright 2015-2022 Xilinx, Inc. All Rights Reserved.</p>
	<p class="footer">&copy; Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved.</p>
</div>
</body>
</html>
